﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using ABC_SA_DM;
using ABC_SA_DAL;

namespace ABC_SA_BL
{
    public class Paquete_BL
    {
        public bool crearPaquete(int estado, string nombre, string fechaInicio, string fechaFinal, string descripcion, int precio)
        {
            //Se instancia el paquete nuevo
            Paquete paqueteNuevo = new Paquete(estado, nombre, fechaInicio, fechaFinal, descripcion, precio);

            //Se crea el paquete en la capa DAL
            Paquete_DAL Paquete_DAL = new Paquete_DAL();
            return Paquete_DAL.crearPaquete(paqueteNuevo);
        }

        public void eliminarPaquete(int idPaquete)
        {
            //Se elimina el paquete en la capa DAL
            Paquete_DAL Paquete_DAL = new Paquete_DAL();
            Paquete_DAL.eliminarPaquete(idPaquete);
        }

        public bool modificarPaquete(int estado, string nombre, string fechaInicio, string fechaFinal, string descripcion, int precio, int idPaquete)
        {

            // Se consulta el paquete que se desea modificar
            Paquete paqueteAModif = new Paquete();

            // Se actualizan los datos de la Instancia
            paqueteAModif.estadoSG = estado;
            paqueteAModif.nombreSG = nombre;
            paqueteAModif.fechaInicioSG = fechaInicio;
            paqueteAModif.fechaFinalSG = fechaFinal;
            paqueteAModif.descripcionSG = descripcion;
            paqueteAModif.precioSG = precio;
            paqueteAModif.idSG = idPaquete;

            //Se modifica el paquete en la capa DAL
            Paquete_DAL Paquete_DAL = new Paquete_DAL();
            return Paquete_DAL.modificarPaquete(paqueteAModif);
        }

        public Paquete mostrarPaquete(int idPaquete)
        {
            // Se consulta el paquete que se desea modificar
            Paquete_DAL Paquete_DAL = new Paquete_DAL();
            Paquete paqueteConsultado = Paquete_DAL.consultaPaquete(idPaquete);

            return paqueteConsultado;
        }

        public int consultaIdConNombre(string nombrePaquete) {
            //Retorna el id del paquete en cierto nombre
            Paquete_DAL Paquete_DAL = new Paquete_DAL();

            return Paquete_DAL.consultasConNombre(nombrePaquete,3);
        }

        public List<Paquete> consultaListaPaquetesInfo()
        {
            // Se consulta la lista de paquetes
            Paquete_DAL Paquete_DAL = new Paquete_DAL();

            return Paquete_DAL.consultaListaPaquetesInfo();

        }

        public bool relPaqueteDestino(int idPaquete, List<string> Destinos)
        {
            Paquete_DAL Paquete_DAL = new Paquete_DAL();
            return Paquete_DAL.relPaqueteDestino(idPaquete, Destinos);
        }

        public bool relPaqueteServicio(int idPaquete, List<string> Servicios)
        {
            Paquete_DAL Paquete_DAL = new Paquete_DAL();
            return Paquete_DAL.relPaqueteServicio(idPaquete, Servicios);
        }


    }
}
